1 package uba.db.sql.language;
2
3 import org.apache.commons.lang.builder.EqualsBuilder;
4 import org.apache.commons.lang.builder.HashCodeBuilder;
5
6 /***
7 * Representa una referencia "calificada" a un nombre de columna (es decir del
8 * tipo <i>tabla.columna</i>).
9 *
10 * @version $Revision: 1.8 $
11 */
12 public class QualifiedColumnName implements ColumnReference {
13 private TableName tableName;
14 private ColumnName columnName;
15
16 /***
17 * Crea una nueva instancia que representa la columna referenciada por:
18 * <i>tableName.columnName</i>.
19 *
20 * @param tableName
21 * nombre de la tabla.
22 * @param columnName
23 * nombre de la columna en la tabla.
24 */
25 public QualifiedColumnName(TableName tableName, ColumnName columnName) {
26 this.tableName = tableName;
27 this.columnName = columnName;
28 }
29
30 /***
31 * @see java.lang.Object#hashCode()
32 */
33 public int hashCode() {
34 return HashCodeBuilder.reflectionHashCode(this);
35 }
36
37 /***
38 * @see java.lang.Object#equals(java.lang.Object)
39 */
40 public boolean equals(Object obj) {
41 return EqualsBuilder.reflectionEquals(this, obj);
42 }
43
44 /***
45 * @see java.lang.Object#toString()
46 */
47 public String toString() {
48 return tableName + "." + columnName;
49 }
50
51 /***
52 * @see uba.db.sql.language.SingleValue#accept(uba.db.sql.language.Visitor)
53 */
54 public void accept(Visitor visitor) {
55 visitor.visitQualifiedColumnName(this);
56 }
57
58 /***
59 * @see uba.db.sql.language.SingleValue#valueWith(uba.db.sql.language.EvaluationContext)
60 */
61 public Object valueWith(EvaluationContext context) {
62 return context.valueOf(this);
63 }
64
65 public TableName tableName() {
66 return tableName;
67 }
68
69 public ColumnName columnName() {
70 return columnName;
71 }
72 }